查看原文
其他

《暗黑2》经典数值公式分析总结(一)

腾讯GWB游戏无界 2022-08-30

公式会完全还原原著的设计模式,比如伤害实际计算会有各种方面可能存在的加成,这些加成会都保留,所有看起来有的公式可能会稍长。在写出原公式之后,会花点文字解析并最后做个简单的总结。基本上优先从能用可参考的入手,希望大家喜欢。


整体还是会按照游戏深度由表及里,慢慢引出诸多内容。


开始会很简单,后面应该也不会复杂到看不下去。希望能这样一直总结到很多条,起到温故而知新的作用,警示自我以后不会偏离一些初衷用户体验。


这款游戏的经典程度不用多谈了,想必也都玩过,欢迎和谐讨论交流与指正。《暗黑2》无疑是圣经、教科书的级别。深入研究更像是一门无底洞的学术,本着敬畏的心情,尽量不出错的去做好这些个人的心得总结,以供参考。

 

MMORPG最重要的、最常见的公式部分还是战斗方面。首先从这个最基本的地方提取出几个基本的运算公式,然后逐步展开。

 

一、输出伤害公式


 

近战最终伤害=

【(基本伤害x1.5{无形物品})*(1+武器ed数值/100)+直接最小/最大伤害增加值】

*【1+力量或敏捷/100+非武器ed数值/100+技能ed数值%/100)】

*【(1-技能伤害惩罚/100)】*2{临界一击或者致命一击}

+元素伤害

 

这个公式无疑是运用最多最广泛的公式,游戏中所有的刷装备,战斗,都是围绕着一次次的攻击进行,每一次攻击都是以这个公式去进行的。


备注:ed数值是增伤的意思,比如武器里面的20%ed,就是增加伤害20%的意思,大多技能也附带这类效果。临界和致命一击就是暴击的意思,伤害翻倍。

 

公式解析:


游戏设定中,装备分为有形和无形,无形装备的基础伤害或防御会变成1.5倍。普通武器的基本伤害,加成上武器带来的增伤比例与固定增伤,就是武器本身普攻一次的最基础伤害了。这个输出的最基础伤害也就是武器面板上写出来的单手伤害范围A~B。


公式第二行括号中的力量敏捷系数、武器ed、技能ed,分别是角色的一级属性对伤害加成、武器、技能带的一些魔法增伤特效的总百分比加成,跟第一行的基本武器伤害叠乘。


最后第三行再结合技能与光环的增减伤害、暴击伤害得出这一下物理或者魔法伤害的总值、加上冰火毒电方面的元素固定伤害,得到最后的输出。


一把武器的自身伤害是最主要的,这个是基础值,所以整个暗黑的世界中一大部分都会围绕打出一把高伤好武器去进行。得到好武器之后,人物的技能,装备加成,元素伤害,形形色色的能力都参与运算,最后形成了一个设计者想要的输出数值。


游戏最初就给武器设定了固定的数值范围,输出取决于武器的自身能力好坏,武器的级别种类颜色不同,赋予了武器形形色色不同的特性、增伤、魔法元素。其次从公式里也可以看出来,人物的加点方法,对武器的能力输出也有一定比例的影响。比如刺客拿爪,敏捷点数有加成;野蛮人拿各种近战,他的力量点数加的就比别人多,那么输出伤害增幅更大。


除了暴击翻倍,光环增幅等经典的设计,再一次突出了加点模式对人物成长方向的影响,而这个加点完全是玩家自主把控的。


总结公式:


最经典的伤害公式,完全符合现实逻辑,给游戏上限做了大量可扩展的丰富玩法。理解后简单变形大概可以描述成


(武器固伤*武器自带增幅)(+人物点数、所有装备投放的伤害增幅、周围光环与技能的伤害增幅)(-对方技能的减幅衰减)(暴击与否)+元素总伤

 

在第一条公式最后顺便讲解一些法系的伤害,其实跟物理的类似。只是前面2个括号里,就是武器基础固伤输出的地方,变成法术输出的技能的固定伤害,然后再后续进行光环,装备加成。大体上一样,只是输出模式不同,输出手法和命中方式也不同,后面详述。总之平砍的物理近战大多从武器上去着手得到基础输出,法术的是从释放的技能上着手得到基础输出。法系是攻击必中的,物理的则不是。这就牵扯到命中率的设计。

 

二、命中率公式



实际命中率=自己命中率/(自己命中率+别人防御力)*[自己等级*2/(自己等级+对方等级)]

 

假设一个小怪跟你等级一样,你命中率100,小怪防御50,砍他一次命中率其实是2/3。

 

公式解析:


随着游戏进行,每个角色都有一个自己的命中率属性。法系技能必中,所以物理普攻的命中率才有意义。游戏的防御力的效果就是降低别人的命中率,防御力高了别人不容易集中而已,击中了哪怕你防御力再高伤害也一样。和大多游戏流行的闪避属性叫法不同本质一样,暂时可以把暗黑这里的防御理解成闪避就对了。【暗黑也有伤害减免,不过那个叫抗性,抗性越高伤害减免百分比就越多,当然也分物理抗性魔法抗性,以及冰毒火电抗性。】

 

后面的等级修正是很有意思很经典的一个设计,自己等级2倍除以双方的等级之和,在之后的游戏中被大量沿用。首先假设双方等级一样,在游戏的过程中很常见的双方等级一样的战斗,那么这后面的等级修正比例结果就是1,如果自己等级是20对方是10,结果就是命中率要乘以4/2+1,你的等级比对方高,命中率还要高一下变成4/3倍。所以虽然大多游戏的装备,加点与面板输出很重要,最终设计者还会加上这个等级来把控一下平衡。记得以前玩过一些游戏,设计玩家等级差距到一定程度,直接增加伤害碾压增伤百分比,低等级不存在逆袭。这样的话直接很有效的削弱或规避了部分潜在的卡级玩法。只要在一些命中或者伤害后加这么个等级修正系数即可。

 

回到这个公式的命中计算法则,自己命中率够高,别人闪避(防御力)够低,才能有效的击中对面。但是,游戏中防御力的数值有变动范围,固定在了5%到95%的区间内。小怪的防御力防御力再低,你堆叠命中率,也不会超过95%,游戏里除非部分技能才存在百分百命中。


boss后期几千几万的防御,假设有5000防御,那么a/a+b这个公式中,你有5000命中也就是一半概率击中。以游戏经验而已,叠加到七八千以上才会有比较有效的攻击效率。正因为游戏设计了miss的机制,并不是每一次攻击都中,大量的属性和玩法设计才会有用武之地。


设计侧重点根据体验而进行,暗黑的战斗设计大多都是很简洁直观的。在大多情况下,直观的输出多少伤害就是扣血的血量,尤其对于玩家而言。没有什么百分百伤害减免的,生命槽是多少就表示能承受多少伤害。


游戏的减免手法更多的就是通过这个防御闪避,集中在使得对方无法击中来取得一个平衡调整。抗性的计算前期并不多,所以说,输出扣血很直观,伤害是多少数值基本就是掉多少HP,主界面红球的血就表示你有多少的生存力。



而不是某些游戏一样,自己输出多少伤害对比对面HP,很难有一个准确的能否击杀的感受体验。因为防御减伤叠乘算法一大堆,极为复杂,自然就造成了玩家的部分理解成本。


要知道,暗黑中玩家基本没有物理抵抗的,也就是说多少伤害打到身上就是多少,除非那一件暗金免伤甲。怪物也是在中后期才会出现大量的物理抵抗,免伤。有这种能力的暗金怪物的头衔很明显会自带这类称谓,超过100物理抗性直接显示为:隐形的XXXX。


任何一种属性,暗黑中50抗性就是减免一半伤害,计算也是极度的精简漂亮整洁,没有那么多花里胡哨的括号。对处女座而言最舒服的一点。


所以前面说的,游戏中的防御属性,是整个过程玩家都一直绕不开的的话题,况且所有的装备,防御力都是一个最重要的指标。


就游戏本质体验而言,当然是越直观越好,到现在流行的游戏,复杂的公式已经超过玩家的把控能力了,看一眼面板还真不能搞清楚几下打死或者能不能打死。比如LOL,我看一下自己的攻击力,技能输出,点一下对面HP,不计算召唤师技等情况下,带入护甲魔抗计算就已经是要用到 护甲/100+护甲 这个乘法公式了。好在鼠标移过去也都贴心的显示伤害减免百分比,玩的多的情况下大概能有个数,但是还是增加了一个减免计算过程(跟魔兽的减免算法有点像)。

 

公式汇总:


1、命中值/(命中值+对方闪避)=命中率

【设定数值区间5%到95%】


2、经典的万能等级收益平衡调整:

攻击者等级*2/(攻击者等级+防御者等级)

 

说完命中率,接着要提到和命中所对应的防御力属性。

 

三、防御力总值公式



防御力总值=(人基本防御+装备防御+各种地方的直接额外防御)*(1+各种防御百分百加成)

 

防御力也跟输出、命中一样,也是有几个方面加成得到的。


公式解析:


类似第一条伤害公式,防御这其中主要就包括裸装(也就是人物自身的)防御值,全身装备防御值,光环技能等加成防御值百分比。

 

自身防御力公式:Base_Defence = [Dex/4];防御力的自身数值,就是敏捷点数除以4。敏捷加的越高,防御力越高(之前提过其实就是敏捷加的多,闪避数值高,防御的概念这里是闪避)。很经典的一级属性点到二级属性点转化。

 

装备就是一身装备防御力相加,有固定数值额外加成的也直接加,可以得到一套防御总值。最后这套总值再跟技能光环被动等百分百加成相乘法。很中规中矩的计算方式。

 

公式汇总:


显示防御力=[(当前人物总敏捷点数/4)+所有装备的防御力总值]*(1+其他各种技能光环对于防御力的加成)

 

四、谈一下角色的基本属性设定



《暗黑2》的一级属性,如图。随着游戏的升级,每一级升级给你5点点数平均分配在4项能力上,下面说的这几个一级属性、二级属性,在后来的仿暗黑,传奇类,或者mmo游戏里大多沿用了这一经典设定。


可以加点分配的几个属性,对于各个职业有不同的侧重点。4种可加点的属性分别是力量,敏捷,体力,精力。


界面经典的红色蓝色双球代表生命和法力,施法消费法力,挨打消耗生命,生命结束游戏结束,都是arpg基础的设计。


基本属性在作用上设定得很直观,不同的职业里作用也会类似,但是收益系数各有调整。可以这样简单理解:


加力量增加站撸战士近战伤害系数;


加敏捷主要影响命中率闪避率,此外还能增加部分职业比如射手伤害系数;


加体力增加HP跟耐力;


加精力增加MP。


也就是说体力跟现实一样对应到生命和持久跑步的耐力。精力对应施法消耗的魔力。如此玩家玩家也可以用一级属性自由分配影响实际使用的生命类二级属性。是不是非常简单,很好理解。


关于力量敏捷的增伤作用,回头看第一条公式就能理解其中的作用了,数据可以起到一个百分比系数的作用。其实不仅是增伤,其他地方的一些细节,比如在职业装备穿戴平衡设定、引导里也都用到这个一级属性。比如非常经典的:【板甲穿戴需求:力量点数50,法师一般穿不了,法师就穿布甲好了。】


这一部分加点的设计,涉及到1级或者前期的职业体验,可以说是数值框架中最重要的部分,不能说用一套公式一拉就全部得出,所以暗黑的表格很多也是用细微调整,填表类比的方法得出的。这里试着重现一下设计过程。大多游戏初始职业的设定法都类似。


首先明确职业的一些基本侧重点:


野蛮人:近身作战战士,力量高HP高,法力加成少,法力值极低,要生存所以要多出一定的防御敏捷。


法师:远程女法师,体力点少,生命低,法力值高,法力恢复快,MP加成要高。作战方式设定都是远程施法,法力值要远超于野蛮人弓箭手这类物理方式作战的。


刺客:跑动速度快且持久,所以精力要高。生命法力当然都分别落后于战士跟法系,但是敏捷要最高,拟定角色时设定的技能模式决定了必杀蓄力一击一定不能落空。


圣骑士:也是近战战士,生命高,体力加成但是比野蛮人略少,比法师要高。精力也是介于二者之间。但是亮点是盾牌,玩家加点上合理的都绕不开盾牌的防御率公式,敏捷也得略高。


死灵:基本接近女法师,作战模式的区别,生命还是要略微超过女法师,法力略低于女法师。整体四维还是围绕法师微调。

 

力量因子主要是关系到中后期的力量加成,因为最前期武器只有几点攻击力,加成看不出来的。这里举个例子:



如图武器输出了伤害是4-7,敏捷点20,增伤变成120%,则范围是4*1.2~7*1.2=4.8~8.4


所有游戏里你可以看到攻击伤害,写的就是5-9。就是这个加成幅度。

 

野蛮人拥有最高的力量,加成方面设定为初期30%,所以填最高的30,圣骑士则设定25,那么刺客、弓箭矛女亚马逊则递减为20%,法师最低到10%近战加成最低,当然力量初始点数就给最低的10即可,其实对于实际作战也没用,高级的盔甲也穿不上。


由于提高等级点数所有人获得固定,后期点数的自由投放取决于玩家,但是最开始的职业设定和区别,关系到最前期的体验,所以还是要完全手动得填好每一个数值。


主要上面举例了,初期的30%自带增伤,也看不出体验区别,新手阶段的武器伤害也控制在了1~5内。砍人这一下的游戏伤害数值的体验,可以说波动范围在立项期间就设定成了严格的【1-999】绝不会崩。


所以新手阶段,这里面主要的体验区别,其实在于生命,生命值的初期设定,需要再结合最低级小怪的攻击力和作战回合拟定。


《暗黑2》这部分的数值调整了肯定无数遍,这里只是大概尝试逆推一下给个思路。


拟定小怪都是80%以上的击中概率,因为开始小怪防御都只有三四点很低的。这个到野外任意作战一次,打开面板都可以看到的。



以野外第一个1级小怪沉沦魔为例,其生命点数为4,攻击1~2。最开始的体验设定都是低级小怪一击必杀,第二轮种类野怪打跟2次就击杀,比如在后面出现的骷髅等都是砍个2次左右,玩过的都知道作战非常简单绝不会卡关。结合野怪数量一般作战3-5个最多。假设没有精英怪的场景,生命值最初期至少也要2*3*怪物数量*秒杀流作战时间,2*3*6=36HP,大致预测计算下来就可以有这么个数字了。游戏设定单挑小怪肯定是无敌,加上有药瓶持续恢复,唯独大量的群殴场景需要多测试。初期1级的场景,50的HP就算比较好的体验了,肯定确保玩家不会死。另外50的初始值,也方便其他职业上下调整。当然这些都是初期填表的尝试值。



大概把数字填上去之后初始职业1级属性会变成这样。


(点击上图,可放大查看)


可以说这里面右边的成长加成系数是最主要的,初始值的大小影响不大而且修改方便。但是后面等级高了,加成系数会带入到表格中生成1-100级的数据。加点玩家决定,各职业各种设定系数还有差别,好几百点的投入下,对人物build效果会很大。某些效果接近的职业比如死灵与法师的法力加持,用更小数细微的方法,1.75,1.55,1.25这样去接近。


(点击上图,可放大查看)


陆续补充完成后表如图,左侧是一级属性,右侧则是一些成长系数了。用这个简单的小表格,乘以到等级算一下,能得到后期的裸装所有角色的所有能力。一切自身能力都可以推算出来。每个职业属性给一张表格就可以。


这里篇幅问题就不再逆推各种详细数据了,打开游戏1级到5级打几次,其实就可以特别清楚了。这款游戏的前期点数投放,体验上是很完美的,毋庸置疑,都不知道修改了多少次。现实里如果项目中能越早有demo测试的条件就越好,否则只能表格模拟跟脑子里演算了。

 

这部分决定了基础属性跟成长的属性。游戏里后面很多重要的因素:耐力、跑速、承重、命中率闪避率,到一些高阶伤害计算都跟这个有关,后面还会回头再提到这部分的。实际设定这些数值的时候,推算不太确定的,拍脑袋写下的数据可以先行标记做笔记,后续难免会有调整的。但是回头看暗黑这个简洁的框架模型,就很值得学习吧,最经典的就是最简洁的。下面的篇幅就讲一下跟耐力有关的移动速度问题。

 

五、耐力与跑步的消耗公式


这一部分在我们大多项目里可能用不到,尤其手游里大多的mmo不会去做这个单位的多种类移速变化系统,无限跑就完事了。目前端游也没见过能做到当年暗黑那个精致度级别的。存在帧数,画面,尺寸的各种技术限制的情况下,给人物设计的移动已经精准到几乎等同现实状况的地步了。这里也只能对最表面可见的跑动与耐力机制给出一个粗浅总结。

 

游戏中耐力的作用是给跑步消耗用。上一条公式中有写,基础的体力加点能提高耐力,耐力越多跑的越久。毕竟体力这个东西影响生命和跑步持久力简直太好理解了。

 

耐力总值公式:基本耐力+每一级提高的耐力+分配的体力点加的耐力。这一条很简单。

 

角色在走路或者不动的时候,耐力会恢复,跑步的时候耐力持续衰减。并且非常合乎逻辑的设定了不同职业不同的衰减速度。《暗黑2》的数值系统经典的根本,感觉还是在于,无数地方都严格根据实际情况去执行合理的运算,真的是不怕麻烦。

 

耐力衰减的速度越快,跑的时间当然也就越短。出于实际的模拟考虑,很自然的可以联想到所取决于的因素:角色的先天能力不同,装备轻或重,一些来自技能与装备的额外的特别能力的加成。


首先刚刚已经给出了总的耐力公式,那么保持跑动的总时间就等于总耐力/每秒损耗值。


得到损耗公式就OK了。每秒损耗的耐力值由以下公式得出:

 

25*每个角色的耐力消耗参数*(1+重甲 或中甲 或轻甲的额外加成)*(1 - 装备的减少耐力消耗属性)/256

 

概括的说,轻巧的职业比如刺客,耐力消耗系数就小,设定30,其他人系数就大,设定为40。


穿的重甲则额外消耗比例为10%,中甲为5%,轻甲不变。


装备那个属于额外魔法属性,游戏的附加属性,帮你减少耐力消耗了,每一秒消耗的就会少。

 

25后面的这部分数值,就是精准到了的每一帧的耐力消耗。


以刺客的30带入计算,25跟256抵消一下变成除以10,那么也就是30除以10得到3。


所以别看前面他消耗参数是30这么大,假设穿了布甲,但是后面又除以了一个256了,这个系数数值就是中后期微调的关键。可以一次性给所有职业的消耗时间长短做调整系数,觉得跑的时间不够给力不爽,把数字增加就行了。


设定消耗参数是30,才能更方便的给所有职业进行微调,而且可以做到准确得无以复加。

 

一帧消耗乘以的25(《暗黑2》游戏帧数是25)就得到了1秒内的消耗。对比一下总耐力值,就能很明显的得到一个几秒时间的感受。



前面举过计算例子,我们先去掉所有加成,那么刺客的话1秒钟消耗数值是25*30/256约等于3,初始的耐力翻上面表可以看到,初期大家百来点耐力,跑个30秒也是很合理的了。

 

可以自己简化一下变成自己的公式:想设定不同职业的,比如刺客就用系数为30,战士40。


直接得出每秒消耗系数/10就行了,或者直接在职业表中填每秒消耗的点数(存在逐个设定调整的就尽量做到可以设定可以逐个职业调整,这种调整比批量改动要便捷保险,不会存在无可改动)。况且现在的游戏已经不存在25帧的限制了。

 

公式总结:


不同职业在各个场合的表现,分别设定系数,通用计算公式也要设定调整系数。可以逐个调也可以一起跳。暗黑这么简单的公式中就做到了。


其次给装备设定更多的有趣的属性,重量的不同,需求的不同,这些设定的条目越多,后面可扩展的可玩性才越多。真的用不到其实也没关系~

 

六、耐力恢复公式

 

25*耐力最大值*(1+额外耐力恢复加成)/256

 

讲完消耗,自然接着要提一下自动恢复。公式理念一脉传承,这里独立写一下。


上面说过走路跟站立的时候耐力恢复都设计成不一样。站着不动恢复的快,用走的方式也可以恢复,会慢很多。

 

而且还有2个细节,战力不动但是你在战斗或者被打,耐力不回复;如果你跑到0耐力,变成走路,也一直不回复,至少要有一点耐力以上,才可以切换成走路然后再慢慢恢复。

 

另外,走路与跑步状态,你的实战检测代入计算的防御力也会不同,可以理解为,一路跑得快,别人就更容易打中你。如果慢慢走,格挡防御什么的都跟站立状态一样。所以高难度一顿乱跑的往往才容易死于飞箭。依旧是出于真实模拟考虑的角度。

 

站立不动状态的耐力恢复公式:


25*耐力最大值*(1+额外耐力恢复加成)/256


简化一下,假设没有装备带来的额外恢复加速,再把25/256约等于1/10;那么公式其实也就是耐力最大值/10,所以罚站10秒,空了的耐力可以加满。这个就是游戏的节奏设定。通过对256这个系数的调整,可以控制恢复满的时间。


这个公式设定其实结合耐力最大值除一下,发现跟耐力最大值没有关系。也就是说恢复的时间固定。并不是说耐力最大值越大则越快,也是游戏设计理念的体现,任何职业站立10秒差不多就恢复满。

 

走路状态的公式:上述公式结果除以2,让恢复效率减半。也就是说走的话要花双倍的时间回满。

 

七、决定人物跑速的具体公式

 

最终行走速度=基础行走速度【(1+来自技能跑速加成百分比)+(物品跑速加成系数*150/物品跑速加成系数+150)+盾牌重甲的衰减】

 

说完耐力消耗多少决定跑动时间,也提到了走路和跑步站立的不同恢复,接着引出跑速的具体设计。


这里会开始出现最经典的档位的概念了。时代的产物,引擎的限制。25帧的老游戏无法实现流畅的画面实现,比如攻击速度有那么多种,得到的攻击频率画面一秒内会有无数种节奏,游戏只能25帧,所以只能把跑速,攻速,格挡速度这些变成一个个的数值槛,形成一个个档位。有点歪打正着的感觉,其实反而让数值的追求变得更有意思,产生了一个一个的兴奋点。对于数值设计的兴奋点,一个个玩家努力突破堆积的槛,现在的游戏里应该很常见。


不过暗黑这种基本画面表现形式都存在的档位,在现在的游戏技术里已经不可能再存在了。这里旨在分析其中公式和理念。

 

游戏游戏分辨率可以有2种选择,640*480和800*600,根据尺寸,假设一下画面用固定间距的横线竖线给予划分,变成一个个用码为单位的立体空间。比如800*600的分辨率,变成高16.7码,宽23码,长分成23份,高宽分成大概17份。


游戏代码内,单位的移动速度就是用这些一个个小长方体来代表距离,代表移动速度。这个运算方式不等同于当下流行游戏的地图坐标方式,地图坐标是固定的地图上的地点。而这方式主要的好处是,可以直接表示到不同单位的距离,移速,对比位置。比如安装一些补丁工具之后,会发现所有单位都有一个固定的距离用码来显示的。另外游戏内的所有技能,攻击距离也都用自己的码去显示,当然移速也是。


想象一下屏幕上这个长方形游戏画面的长宽,长23码宽高17码左右。


游戏内所有角色基础移速都一样。行走是4码每秒,跑步变成1.5倍是6码每秒。


游戏设定了最低行走跑步移速,是1码每秒。因为游戏后期怪物大量的冰冻、诅咒、减速可能让人物几乎无法移动,最低的移速就跟最低的命中率5%一样为游戏体验而设定。

 

此外移速受到很多因素的影响,比如人物装备的盾牌重量,前面提到的盔甲种类轻重。跟之前提到的耐力衰减一样,移速方面重甲重盾是10%衰减,中盾中甲是5%,轻甲不影响。

 

最重要的是一个跑速加成系数属性,这个魔法属性的投放跟伤害加成类似,在各种装备饰品中都有,表现为:提高人物跑步速度X%。


人物移动时候,画面刷新受到25帧数的影响,所以实际上效果存在档位。这里因为目前游戏技术不再存在,就不多提,以实际公式分析为主。


最后除了装备技能的特殊效果加速,重甲带来的负重减速,还有敌人的大量特殊效果,比如玩过的都知道冰冻,衰老,都是减速50%。还有其他的一些敌人的冰冻光环,指定数值减速效果。当然怪物单位也有各种各样的加速技能和光环。

 

行走移速公式:


最终行走速度=基础行走速度【(1+来自技能跑速加成百分比)+(物品跑速加成系数*150/物品跑速加成系数+150)+盾牌重甲的衰减】

 

技能加成,盾牌衰减很好理解。但是中间物品的一个百分比用的公式形式是150a/a+150。


需要变形一下才好理解。变成a* (150/a+150)如果物品跑速加成是100%(后期不难达到),则带入计算得到的结果是100*15/25,得到一个修正变成了60%。


如果物品跑速加成是10,带入计算得到的是9.3。


有没有想到LOL的护甲减免公式a/a+100?这里的150/a+150正是暴雪典型的追加系数公式。但是这里把常见的100/a+100改成了150/a+150,根本原因是针对的a的范围不同。b/a+b,b的范围越大,影响的值也会越大。可以假设一下一百跟一万的区别就明白了。


这个以可以断定为出于修正对物品带来的跑速加成的影响而留的公式。游戏里物品方面的跑速非常多,后面积累多的话,包括物品鞋子武器,尤其是背包的一堆符文等等。加成高了会非常快,这里做一个a/X+a的衰减也很好理解。

 

公式总结:


对于我们自身的运用,这个公式跟耐力等计算类似很简单,拿到基础值之后乘以各种系数就好了。唯独中间的那个衰减运用,可以看出高手的严谨。平时预感到溢出的或者很大的数值就多预留系数,以后修改就会很方便,这方面的经验很值得学习。暴雪爸爸的a/a+b用的很多,以小见大。

 

后面跑速方面的就简单提一下就好。考虑到玩家的体验层级差异,实际游戏中计算是这样设计的:


跑速直接=上述得出的行走速度再+2码每秒


这样的话任何单位的跑速和移速都保持在一个比较平衡和接近的体验上。突然跑起来不会太过突兀。毕竟游戏角色从头到尾大多都在跑步走路。

 

另外考虑到中后期特殊情况的战斗跑速下限, 当最终行走速度<角色基本行走速度/4 的时候,最终行走速度=角色基本行走速度/4。当最终跑步速度<角色基础跑步速度/4 的时候,最终跑步速度=角色基本跑步速度/4。设定这个下限跟命中率的理念一样,都是为了消除极端体验而定的阈值。LOL里移速也一样存在下限,上限各个范围区间的衰减系数。

 

未完待续。


今日推荐  

·如何用行为树开发游戏AI以及任务系统?

·独立游戏开发者谈设定:不只是游戏性的糖衣

·如何发散游戏Demo阶段的开发方向?这里有几点研发建议


加微信(gadld2016),加入GAD策划交流群,领取17G腾讯内部分享等独家资料。


↓↓↓点击阅读原文,了解更多。

您可能也对以下帖子感兴趣

文章有问题?点此查看未经处理的缓存